// Copyright (c) 2005  INRIA Sophia-Antipolis (France).
// All rights reserved.
//
// This file is part of cgal-python; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; version 2.1 of the License.
// See the file LICENSE.LGPL distributed with cgal-python.
//
// Licensees holding a valid commercial license may use this file in
// accordance with the commercial license agreement provided with the software.
//
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
//
// $Id: Py_Enumerations.cpp 181 2007-11-08 09:44:15Z spion $
// $URL: svn+ssh://scm.gforge.inria.fr/svn/cgal-python/trunk/cgal-python/bindings/Kernel/Py_Enumerations.cpp $
//
// Author(s)     : Naceur Meskini
//=========================================================================

#include <CGAL/basic.h>

#include <boost/python.hpp>
#include <boost/cstdint.hpp>

void export_Enumerations()
{
	//Some of Enumerations defined in CGAL. 
	using namespace boost::python;

    enum_< CGAL::Angle >("Angle")
        .value("OBTUSE", CGAL::OBTUSE)
        .value("ACUTE", CGAL::ACUTE)
        .value("RIGHT", CGAL::RIGHT)
    ;

    enum_< CGAL::Bounded_side >("Bounded_side")
        .value("ON_UNBOUNDED_SIDE", CGAL::ON_UNBOUNDED_SIDE)
        .value("ON_BOUNDED_SIDE", CGAL::ON_BOUNDED_SIDE)
        .value("ON_BOUNDARY", CGAL::ON_BOUNDARY)
    ;

    enum_< CGAL::Sign >("Sign")
        .value("POSITIVE", CGAL::POSITIVE)
        .value("ZERO", CGAL::ZERO)
        .value("NEGATIVE", CGAL::NEGATIVE)
#if CGAL_VERSION_NR >= 1030301000
        .value("ON_POSITIVE_SIDE", CGAL::ON_POSITIVE_SIDE)
        .value("ON_ORIENTED_BOUNDARY", CGAL::ON_ORIENTED_BOUNDARY)
        .value("ON_NEGATIVE_SIDE", CGAL::ON_NEGATIVE_SIDE)
        .value("LARGER", CGAL::LARGER)
        .value("SMALLER", CGAL::SMALLER)
        .value("EQUAL", CGAL::EQUAL)
#endif
    ;

#if CGAL_VERSION_NR < 1030301000
    enum_< CGAL::Oriented_side >("Oriented_side")
        .value("ON_POSITIVE_SIDE", CGAL::ON_POSITIVE_SIDE)
        .value("ON_ORIENTED_BOUNDARY", CGAL::ON_ORIENTED_BOUNDARY)
        .value("ON_NEGATIVE_SIDE", CGAL::ON_NEGATIVE_SIDE)
    ;

    enum_< CGAL::Comparison_result >("Comparison_result")
        .value("LARGER", CGAL::LARGER)
        .value("SMALLER", CGAL::SMALLER)
        .value("EQUAL", CGAL::EQUAL)
    ;
#else
    scope().attr("Oriented_side") = scope().attr("Sign");
    scope().attr("Comparison_result") = scope().attr("Sign");
#endif
}
